package com.pai4j.domain.vo.response.interaction;

import com.pai4j.domain.vo.response.UserBaseResponseInfoVO;
import lombok.Data;

/**
 * 互动消息响应VO
 * 用于返回互动消息详情给前端
 * 
 * @author PAI4J Team
 */
@Data
public class InteractionMessageResponseVO {
    
    /**
     * 消息ID
     */
    private Long id;
    
    /**
     * 发送人账号
     */
    private String senderId;
    
    /**
     * 发送人详细信息
     */
    private UserBaseResponseInfoVO sender;
    
    /**
     * 接收人账号
     */
    private String receiverId;
    
    /**
     * 接收人详细信息
     */
    private UserBaseResponseInfoVO receiver;
    
    /**
     * 消息类型（消息大类，固定为 INTERACTION=12）
     *
     */
    private Integer type;
    
    /**
     * 互动消息类型（具体的互动行为类型：点赞、评论、收藏、关注等）
     * 用于前端分类展示和业务逻辑处理
     */
    private Integer messageType;
    
    /**
     * 互动消息类型名称（点赞、评论、收藏等）
     */
    private String messageTypeName;
    
    /**
     * 消息内容（简短描述）
     */
    private String message;
    
    /**
     * 具体的互动内容（详细内容）
     */
    private String content;
    
    /**
     * 消息图片URL
     */
    private String image;
    
    /**
     * 是否已读
     */
    private Boolean isRead;
    
    /**
     * 发送时间（时间戳）
     */
    private Long sendTime;
    
    /**
     * 评论ID（如果是评论相关的互动）
     */
    private Long commentId;
    
    /**
     * 回复ID（如果是回复相关的互动）
     */
    private Long replyId;
    
    /**
     * 扩展字段：用于存储额外的业务数据（JSON格式）
     * 支持未来扩展各种类型的互动消息，如点赞、分享、@提醒等
     */
    private String extData;
    
    /**
     * 被互动的资源ID（如文章ID、动态ID等）
     */
    private Long resourceId;
    
    /**
     * 被互动的资源类型（ARTICLE=文章、MOMENT=动态、COURSE=课程等）
     *
     */
    private String resourceType;
    
    /**
     * 被互动的资源标题（如文章标题、动态内容摘要等）
     * 示例：xxx点赞了你的文章《这是文章标题》
     */
    private String resourceTitle;
    
    /**
     * 被互动的资源封面图URL
     */
    private String resourceImage;
    
    /**
     * 被互动的资源跳转链接
     */
    private String resourceUrl;
}
